package view;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import javax.swing.WindowConstants;

import controller.SistemaTelefonia;

public class AltaUsuario extends javax.swing.JFrame {

	private static final long serialVersionUID = 1L;
	private JLabel jLabel;

	private JTextField dni = new JTextField();
	private JTextField nombre = new JTextField();
	private JTextField apellido = new JTextField();
	private JTextField domicilio = new JTextField();
	private JTextField telefono = new JTextField();
	private JTextField email = new JTextField();

	private String[] labels = { "DNI", "Nombre", "Apellido", "Domicilio",
			"Telefono", "Email" };
	private JTextField[] textFields = { dni, nombre, apellido, domicilio,
			telefono, email };

	private JButton alta;
	private SistemaTelefonia sistema;

	private String dniUsuario;

	public AltaUsuario() {
	}

	public AltaUsuario(SistemaTelefonia s, String usuarioDni) {
		super();
		sistema = s;
		if (usuarioDni != null)
			dniUsuario = usuarioDni;
		initGUI();
	}

	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			generateInputs();
			{
				alta = new JButton();
				getContentPane().add(alta);
				alta.setText("Crear");
				alta.setBounds(238, 400, 93, 28);
				alta.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						try {
							if (dniUsuario != null) {
								dni.setText(dniUsuario);
							}
							sistema.crearUsuario(dni.getText(),
									nombre.getText(), apellido.getText(),
									domicilio.getText(), telefono.getText(),
									email.getText());
							JOptionPane.showMessageDialog(getContentPane(),
									"El usuario se ha creado con exito.");
							
							sistema.reloadData();
							
							setVisible(false);

							if (dniUsuario != null) {
								setVisible(false);
								AltaLinea a = new AltaLinea(sistema, dniUsuario);
								a.setVisible(true);
							}

						} catch (Exception e) {
							JOptionPane.showMessageDialog(getContentPane(),
									e.getMessage());
							clearInputs();
						}
					}
				});
			}
			pack();
			setTitle("Alta de usuario");
			setSize(400, 500);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void clearInputs() {
		for (JTextField textField : textFields) {
			textField.setText("");
		}
	}

	private void generateInputs() {
		int y = 42;

		for (String label : labels) {
			generateLabel(label, 21, y);
			y += 50;
		}

		y = 42;
		for (JTextField textField : textFields) {
			generateInput(textField, 129, y);
			y += 50;
		}
	}

	private void generateInput(JTextField textField, int x, int y) {
		// textField = new JTextField();
		getContentPane().add(textField);
		textField.setBounds(x, y, 210, 28);
	}

	private void generateLabel(String label, int x, int y) {
		{
			jLabel = new JLabel();
			jLabel.setText(label);
			jLabel.setBounds(x, y, 103, 28);
			getContentPane().add(jLabel);
		}
		
	}

}


